using System;

namespace Scheduling.Api.Read.Application.DTO
{
    /// <summary>
    /// 排班完整信息DTO，包含所有外键关联数据
    /// </summary>
    public class ScheduleWithDetailsDTO
    {
        // 排班基本信息
        public int ScheduleId { get; set; }
        public DateTime ScheduleDate { get; set; }
        public bool IsUrgentSchedule { get; set; }
        public bool IsUrgentOrder { get; set; }

        // 班组信息
        public int TeamId { get; set; }
        public string TeamName { get; set; } = string.Empty;
        public string TeamLeader { get; set; } = string.Empty;
        public string TeamTypeName { get; set; } = string.Empty;
        public string TeamTypeCode { get; set; } = string.Empty;

        // 班次信息
        public int ShiftId { get; set; }
        public string ShiftName { get; set; } = string.Empty;
        public TimeSpan StartTime { get; set; }
        public TimeSpan EndTime { get; set; }
        public bool IsNightShift { get; set; }
        public string DisplayColor { get; set; } = string.Empty;
        public decimal OvertimeRate { get; set; }
        public TimeSpan Breakduration { get; set; }
        public int ShiftStatus { get; set; }

        // 日历信息
        public int CalendarId { get; set; }
        public DateTime CalendarDate { get; set; }
        public bool IsWorkDay { get; set; }
        public bool IsUrgentWorkday { get; set; }
        public string UrgentReason { get; set; } = string.Empty;
        public string HoildayType { get; set; } = string.Empty;

        // 排班明细信息
        public int? DetailId { get; set; }
        public int? ActualStatus { get; set; }
        public string Remarks { get; set; } = string.Empty;
    }
}









